class SuporteController < ApplicationController
  def index
    home
    render :action => 'home'
  end
  
  # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
  verify :method => :post, :only => [ :destroy, :create, :update ],
  :redirect_to => { :action => :list }
  def show
    @requisicao = Requisicao.find(params[:id])
    @events = filtra_eventos(@requisicao.next_events_for_current_state)
  end

  def home
    @requisicao_pages, @requisicoes = paginate(:requisicoes, :per_page => 10, 
                                  :conditions => "estado = 'aguardandoAtualizacaoServidorProd' or 
                                  estado = 'atualizacaoServidorIniciadaProd' or
                                  estado = 'atualizacaoServidorSuspensaProd' or 
                                  estado = 'aguardandoAtualizacaoServidorCert' or 
                                  estado = 'atualizacaoServidorIniciadaCert' or
                                  estado = 'atualizacaoServidorSuspensaCert'                                                              
                                  ")
  end

  def iniciarAtualizacaoServidorCert
    historico = Historico.new
    historico.attributes = params[:historico]
    historico.usuario_id = Goldberg.user.id
    @requisicao = Requisicao.find(historico.requisicao_id)
    @requisicao.iniciarAtualizacaoServidorCert!
    historico.estado = @requisicao.estado
    @requisicao.historicos << historico
    flash[:notice] = 'Operação realizada com sucesso.'        
    redirect_to :action => 'home'
  end

  def cancelarAtualizacaoServidorCert
    historico = Historico.new
    historico.attributes = params[:historico]
    historico.usuario_id = Goldberg.user.id
    @requisicao = Requisicao.find(historico.requisicao_id)
    @requisicao.cancelarAtualizacaoServidorCert!
    historico.estado = @requisicao.estado
    @requisicao.historicos << historico
    flash[:notice] = 'Operação realizada com sucesso.'        
    redirect_to :action => 'home'
  end

  def suspenderAtualizacaoServidorCert
    historico = Historico.new
    historico.attributes = params[:historico]
    historico.usuario_id = Goldberg.user.id
    @requisicao = Requisicao.find(historico.requisicao_id)
    @requisicao.suspenderAtualizacaoServidorCert!
    historico.estado = @requisicao.estado
    @requisicao.historicos << historico
    flash[:notice] = 'Operação realizada com sucesso.'        
    redirect_to :action => 'home'
  end
  
  def concluirAtualizacaoServidorCert
    historico = Historico.new
    historico.attributes = params[:historico]
    historico.usuario_id = Goldberg.user.id
    @requisicao = Requisicao.find(historico.requisicao_id)
    @requisicao.concluirAtualizacaoServidorCert!
    historico.estado = @requisicao.estado
    @requisicao.historicos << historico
    flash[:notice] = 'Operação realizada com sucesso.'        
    redirect_to :action => 'home'
  end
  
  def iniciarAtualizacaoServidorProd
    historico = Historico.new
    historico.attributes = params[:historico]
    historico.usuario_id = Goldberg.user.id
    @requisicao = Requisicao.find(historico.requisicao_id)
    @requisicao.iniciarAtualizacaoServidorProd!
    historico.estado = @requisicao.estado
    @requisicao.historicos << historico
    flash[:notice] = 'Operação realizada com sucesso.'        
    redirect_to :action => 'home'
  end
  
  def suspenderAtualizacaoServidorProd
    historico = Historico.new
    historico.attributes = params[:historico]
    historico.usuario_id = Goldberg.user.id
    @requisicao = Requisicao.find(historico.requisicao_id)
    @requisicao.suspenderAtualizacaoServidorProd!
    historico.estado = @requisicao.estado
    @requisicao.historicos << historico
    flash[:notice] = 'Operação realizada com sucesso.'        
    redirect_to :action => 'home'
  end
  
  def cancelarAtualizacaoServidorProd
    historico = Historico.new
    historico.attributes = params[:historico]
    historico.usuario_id = Goldberg.user.id
    @requisicao = Requisicao.find(historico.requisicao_id)
    @requisicao.cancelarAtualizacaoServidorProd!
    historico.estado = @requisicao.estado
    @requisicao.historicos << historico
    flash[:notice] = 'Operação realizada com sucesso.'        
    redirect_to :action => 'home'
  end
  
  def concluirAtulizacaoServidorProd
    historico = Historico.new
    historico.attributes = params[:historico]
    historico.usuario_id = Goldberg.user.id
    @requisicao = Requisicao.find(historico.requisicao_id)
    @requisicao.concluirAtulizacaoServidorProd!
    historico.estado = @requisicao.estado
    @requisicao.historicos << historico
    @requisicao.enviarParaProducao!
    historico2 = Historico.new
    historico2.observacao = 'Transição Automatica'
    historico2.usuario_id = Goldberg.user.id
    historico2.estado = @requisicao.estado
    @requisicao.historicos << historico2      
    flash[:notice] = 'Operação realizada com sucesso.'        
    redirect_to :action => 'home'
  end
end